package com.iweb.day05;

/**
 * @author WuYongheng
 * @date 2021/10/28
 * @description 定义一个Student类，包含id, name和age。要求对这三个属性进行封装：
 * - id的设置范围为1-1000，不在此范围类的，给一个默认值888；
 * - name的值在获取时，如果没有被赋值，则给一个默认的名字“苗星仁”。
 * - age的设置范围是18-24岁之间，不在此范围的，给一个默认值18。
 */
public class Student {

    private int id;
    private String name;
    private int age;

    public int getId() {
        return id;
    }

    public void setId() {
        id = 888;
    }

    public void setId(int id) {
        if (id < 1 || id > 1000) {
            setId();
        } else {
            this.id = id;
        }
    }

    public String getName() {
        return name;
    }

    public void setName() {
        this.name = "苗星仁";
    }

    public void setName(String name) {
        if (name == "") {
            setName();
        } else {
            this.name = name;
        }
    }

    public int getAge() {
        return age;
    }

    public void setAge() {
        this.age = 18;
    }

    public void setAge(int age) {
        if (age < 18 || age > 24) {
            setAge();
        } else {
            this.age = age;
        }
    }

    // 重写toString方法
    @Override
    public String toString() {
        return "id:" + this.getId() + "\n"
                + "name:" + this.getName() + "\n"
                + "age:" + this.getAge();
    }
}
